利用 AWS System Manager 来连 VPC 内网的资源
环境
配置好的 EC2
VPC 内需要有一台 EC2(有无公网 IP 好像没关系),并做好相关配置
安装 SSM Agent
Amazon Linux(无论是 1,还是 2,或者是 2023) 一般是预装好的,只需要确认是否正常启动:
1 | sudo systemctl status amazon-ssm-agent |
如果系统没有安装过 SSM Agent,那么安装(以 CentOS 8 为例):
1 | sudo dnf install -y \ |
激活“默认主机管理配置”
- 访问 https://console.aws.amazon.com/systems-manager/,打开 AWS Systems Manager 控制台。
- 在导航窗格中,选择 Fleet Manager。或者如果首先打开 AWS Systems Manager 主页,选择菜单图标 ( ) 以打开导航窗格,然后在导航窗格中选择 Fleet Manager。
- 在账户管理下拉列表中选择默认主机管理配置。
- 打开启用默认主机管理配置。
- 选择用于为您的实例启用 Systems Manager 功能的 AWS Identity and Access Management(IAM)角色。我们建议使用“默认主机管理配置”提供的默认角色。它包含使用 Systems Manager 管理您的 Amazon EC2 实例所需的最低权限集合。如果您更喜欢使用自定义角色,则该角色的信任策略必须允许 Systems Manager 作为可信实体。
- 选择配置以完成设置。
注意:
在打开“默认主机管理配置”后,您的实例可能需要最长 30 分钟才能使用所选角色的凭证。您必须在要自动管理 Amazon EC2 实例的每个区域中打开“默认主机管理配置”。
如不做其他调整,最多 30 分钟以后,你会在 System Manager -> Fleet Manager -> Managed nodes 下看到你的 EC2 了
本地 aws-cli 和 Session Manager plugin
1 | # 我的本地环境是 Macbook Air (m1), |
具体使用
场景一:登录服务器
1 | aws --profile test \ |
场景二:打洞到 RDS
1 | aws --profile test \ |
然后就可以愉快的在本地连数据库了:
1 | mysql -h 127.0.0.1 -P 5555 -U admin -p |